#ifndef SOCKET_INTERFACE_H
#define SOCKET_INTERFACE_H

#import "Tools.h"
#import "SocketBase.h"

/**创建一个socketoper对象
 *
 *  @return GASocketOper*   实例指针
 *  @note 
 */
void* SocketInterface_NewSocketOper();

/**释放socketoper对象
 *
 *  @return GASocketOper    *pSocketOper   实例指针
 *  @note 
 */
void SocketInterface_Free(void *apSocketOper);

/**socketoper连接是否存在（正在连接和已经连接都认为存在）
 *
 *  @return GASocketOper    *pSocketOper   实例指针
 *  @note 
 */
TBOOL SocketInterface_IsHaveConnect(void *apSocketOper);

/**设置服务器ip和端口
 *
 *  @param char*	apIP    服务器ip域名
 *  @param int    anPort  端口号
 *  @return
 *  @note 
 */
void SocketInterface_SetServerIPPort(void *apSocketOper, char* apServer, int anPort);

/**连接到服务器
 *
 *  @return
 *  @note 
 */
void SocketInterface_ConnectToServer(void *apSocketOper);

/**关闭连接
 *
 *  @return
 *  @note 
 */
void SocketInterface_Close(void *apSocketOper);

/**发送数据
 *
 *  @param char*	apSendBuffer    发送数据
 *  @param int    anSize          发送数据大小
 *  @return
 *  @note 
 */
void SocketInterface_WriteBytes(void *apSocketOper, char *apSendBuffer, unsigned int anSize);


/**设置socket状态通知回调
 * 
 *  @param GASocketOperNoticeCallBack    回调接口
 *  @return
 *  @note 
 */
void SocketInterface_SetStatusNotice(void *apSocketOper, GASocketOperNoticeCallBack* apNoticeCallBack);

/**设置user id and session id
 * 
 *  @param long       alUserId          用户id
 *  @param char       *apSessionId      session id
 *  @return
 *  @note 
 */
void SocketInterface_SetUserIdAndSessionId(void *apSocketOper, long alUserId, char* apSessionId);

#endif
